﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace iNet.Media.Imaging
{
	/// <summary>
	/// ORF 影像解碼工作工廠。
	/// </summary>
	public class OrfImageDecodeTaskFactory : TiffBasedImageDecodeTaskFactory
	{
		#region 建構子
		/// <summary>
		/// 初始化新的 OrfImageDecodeTaskFactory 執行個體。
		/// </summary>
		public OrfImageDecodeTaskFactory()
			: base("ORF Image DecodeTask Factory", ImageFormats.Orf)
		{ }
		#endregion
		#region CreateDecodeTask
		public override MediaDecodeTask CreateDecodeTask(MediaStorage source)
		{
			return new OrfImageDecodeTask(source);
		}
		#endregion
		#region IsSupportedFormatCore
		/// <summary>
		/// 確認指定的媒體標頭是否符合支援的媒體格式。
		/// </summary>
		/// <param name="mediaHeader">媒體標頭。</param>
		/// <returns>True 表示媒體標頭符合支援的媒體格式，False 表示不符合。</returns>
		protected override bool IsSupportedFormatCore(byte[] mediaHeader)
		{
			if (mediaHeader.Length < 4)
				return false;
			if (mediaHeader[0] == 'I' && mediaHeader[1] == 'I' && mediaHeader[2] == 0x52 && mediaHeader[3] == 0x4f)
				return true;
			if (mediaHeader[0] == 'M' && mediaHeader[1] == 'M' && mediaHeader[2] == 0x4f && mediaHeader[3] == 0x52)
				return true;
			return false;
		}
		#endregion
	}
}
